package pl.com.mol.evm.zadania.entity;

import pl.com.mol.evm.bazowe.entity.BazowaEntity;

import javax.persistence.*;
import java.util.Set;

@Entity
@Table(name = "ZADANIA")
public class Zadanie extends BazowaEntity {

    /*
    Informacja, czy zadanie może mieć usatlony czas realizacji.
     */
    private boolean czasowe;

    @Column(length = 200, nullable = false)
    private String nazwa;

    @Lob
    private String opis;

    private Long czasPlanowany;

    private Long czasRealizacji;

    private Long czasPozostaly;

    @OneToMany(mappedBy = "zadanie")
    private Set<PowiazaneZadanie> powiazaneZadania;

    @OneToMany(cascade = {CascadeType.ALL})
    @JoinColumn(name = "ZADANIE_ID")
    private Set<StanZadania> stanyZadania;

    @OneToMany(mappedBy = "zadanie")
    private Set<UzytkownikZadania> uzytkownicyZadania;

    @OneToMany(mappedBy = "zadanie")
    private Set<LogowanyCzas> logowaneCzasy;

    public boolean isCzasowe() {
        return czasowe;
    }

    public void setCzasowe(boolean pCzasowe) {
        czasowe = pCzasowe;
    }

    public String getNazwa() {
        return nazwa;
    }

    public void setNazwa(String pNazwa) {
        nazwa = pNazwa;
    }

    public String getOpis() {
        return opis;
    }

    public void setOpis(String pOpis) {
        opis = pOpis;
    }

    public Long getCzasPlanowany() {
        return czasPlanowany;
    }

    public void setCzasPlanowany(Long pCzasPlanowany) {
        czasPlanowany = pCzasPlanowany;
    }

    public Long getCzasRealizacji() {
        return czasRealizacji;
    }

    public void setCzasRealizacji(Long pCzasRealizacji) {
        czasRealizacji = pCzasRealizacji;
    }

    public Long getCzasPozostaly() {
        return czasPozostaly;
    }

    public void setCzasPozostaly(Long pCzasPozostaly) {
        czasPozostaly = pCzasPozostaly;
    }

    public Set<StanZadania> getStanyZadania() {
        return stanyZadania;
    }

    public void setStanyZadania(Set<StanZadania> pStanyZadania) {
        stanyZadania = pStanyZadania;
    }

    public Set<UzytkownikZadania> getUzytkownicyZadania() {
        return uzytkownicyZadania;
    }

    public void setUzytkownicyZadania(Set<UzytkownikZadania> pUzytkownicyZadania) {
        uzytkownicyZadania = pUzytkownicyZadania;
    }

    public Set<LogowanyCzas> getLogowaneCzasy() {
        return logowaneCzasy;
    }

    public void setLogowaneCzasy(Set<LogowanyCzas> pLogowaneCzasy) {
        logowaneCzasy = pLogowaneCzasy;
    }

    public Set<PowiazaneZadanie> getPowiazaneZadania() {
        return powiazaneZadania;
    }

    public void setPowiazaneZadania(Set<PowiazaneZadanie> pPowiazaneZadania) {
        powiazaneZadania = pPowiazaneZadania;
    }
}
